During a computer system startup, the computer system is self-tested and initialized through loading and execution of system firmware. Under personal computer (PC) architectures, this firmware is commonly referred to as the system's Basic Input/Output System (BIOS). In a typical PC architecture, the BIOS is the firmware that runs between the processor reset and the first instruction of the Operating System (OS) loader. The BIOS also acts as an interface between software and hardware components of a computer system during the OS runtime. As computer systems have become more sophisticated, the operational environment between the application and OS levels and the hardware level is generally referred to as the firmware or the firmware environment.
Today's systems allow for remote access to computers over a network. For example, Wired for Management (WfM) is a specification from the Intel Corporation that describes the performance of certain computer configuration and maintenance functions over a network. Using WfM, the installed hardware and software of a remote computer can be determined and monitored in real time by another computer, such as a server. A feature called remote wakeup (RWU) minimizes unnecessary use of system bandwidth by keeping unused machines online only when they are needed according to a pre-planned schedule. Access to distant computers can be monitored and regulated. A server can access a remote computer to perform tasks such as repair corrupted files and programs, update the operating system, update virus programs, back up files and monitor the remote computer's health.
While the concept of remote invocation has been implemented in operating system environments, access to the firmware of a remote computer regardless of the presence of an operating system currently has limited capabilities. Without the ability to have flexible entry into the firmware infrastructure of the remote computer, a caller computer (e.g., a server) is dependent upon the data that the firmware of the remote computer is programmed to provide the caller. In some networks, the remote's firmware is limited to network boot operations and echoing of the remote system screen data at the caller's monitor. Other remote systems have specific boot-agents that communicate back to their caller in some proprietary fashion. However, these systems are vendor-specific and do not allow a single program to control remote systems in a similar manner when the remote systems come from a variety of vendors.